import java.util.Arrays;
import java.util.Scanner;

public class Test {

        public static void main(String[] args) {
            Person person = new Person();

            person.setName("李四");
            System.out.println(person.getName());

            person.setAge(18);
            System.out.println(person.getAge());

        }
    //给你一个字符串 s ，将该字符串中的大写字母转换成相同的小写字母，返回新的字符串。
    public int firstUniqChar(String s) {
        int[] charCount = new int[127];
        for(int i = 0; i<s.length(); i++){
            char ch = s.charAt(i);
            charCount[ch]++;
        }

        for(int i = 0; i<s.length(); i++){
            if(charCount[s.charAt(i)] == 1){
                return i;
            }
        }
        return -1;
    }

    public static void main16(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();

        String[] str = s.split(" ");
        System.out.println(str[str.length - 1].length());

    }

    public static void main15(String[] args) {
        String s1="abc"+"def";
        String s2=new String(s1);
        if(s1.equals(s2)){
            System.out.println(".equals succeeded");
        }
        if(s1 == s2){
            System.out.println("==succeeded");
        }
    }

    //intern 方法
    public static void main14(String[] args) {
        char[] ch1 = new char[]{'a','b','c'};
        String s1 = new String(ch1);

        s1.intern(); // 入池操作 字符串内存常量池 没有abc 才会把这个s1的值 abc 放入池内

        String s2 = "abc";

        System.out.println(s1 == s2);

        System.out.println("----------");

        char[] ch2 = new char[]{'a','b','c'};
        String s3 = new String(ch2);

        String s4 = "abc";

        System.out.println(s3 == s4);


    }
    //去除左右两边的空格
    public static void main13(String[] args) {
        String s = "         hello world          ";
        System.out.println("["+s+"]");
        System.out.println(s.trim());
        System.out.println("["+s.trim()+"]");
    }
    // 字符串截取
    public static void main12(String[] args) {
        String s = "helloworld";
        System.out.println(s.substring(5));
        System.out.println(s.substring(0, 5)); //左闭右开
    }
    //字符串拆分
    public static void main11(String[] args) {
        //按 空格符 把完整的字符串 拆成若干个字符串
        String s = "hello world hello bit" ;
        String[] ret = s.split(" ");
        System.out.println(Arrays.toString(ret));

        //字符串的部分拆分
        String s2 = "hello world hello bit" ;
        String[] ret2 = s2.split(" ",2);
        System.out.println(Arrays.toString(ret2));

        //拆分IP地
        String s3 = "192.168.1.1" ;
        String[] ret3 = s3.split("\\.");
        System.out.println(Arrays.toString(ret3));

        //多次拆分
        String s4 = "name=zhangsan&age=18" ;
        String[] ret4 = s4.split("[=&]");
        System.out.println(Arrays.toString(ret4));
    }
    //字符串替换
    public static void main10(String[] args) {
        String s = "hello world";
        System.out.println(s.replace("e", "o")); // 替换 字符串中指定的字符
        System.out.println(s.replaceFirst("l", "e")); // 替换 字符串中 指定第一次出现的字符
        System.out.println(s.replaceAll("l", "o")); // 替换 字符串中 指定的所有字符
    }

    //格式化
    public static void main9(String[] args) {
        String s = String.format("%d-%d-%d",2025,3,22);
        System.out.println(s);
    }

    //字符串 转 数组
    public static void main8(String[] args) {
        String s = "hello";

        //字符串 转 数组
        char[] ch = s.toCharArray();
        System.out.println(Arrays.toString(ch));

        //数组 转 字符串
        String s2 = new String(ch);
        System.out.println(s2);

    }

    //大小写转换
    public static void main7(String[] args) {
        String s1 = "abc";
        String s2 = "ABC";

        //小写 转 大写
        System.out.println(s1.toUpperCase());
        //大写 转 小写
        System.out.println(s2.toLowerCase());
    }

    //字符串查找
    public static void main6(String[] args) {
        String s = "aabbccaabbcc";


        System.out.println(s.charAt(0));  // charAt 通过索引找出 字符串上的字符

        System.out.println(s.indexOf("a")); // 返回该字符 第一次出现的位置 没有返回 -1
        System.out.println(s.indexOf("a",1)); // 从索引处向后查找 返回该字符 第一次出现的位置 没有返回 -1

        System.out.println(s.indexOf("ca")); // 返回该字符串 第一次出现的位置 没有返回 -1
        System.out.println(s.indexOf("bc",4)); // 从索引处向后查找 返回该字符串 第一次出现的位置 没有返回 -1

        System.out.println(s.lastIndexOf("c")); //从后往前找 返回该字符 第一次出现的位置 没有返回 -1
        System.out.println(s.lastIndexOf("c",9)); //从索引处开始向前查找 返回该字符 第一次出现的位置 没有返回 -1

        System.out.println(s.lastIndexOf("cc")); // 从后往前找 返回该字符串 第一次出现的位置 没有返回 -1
        System.out.println(s.lastIndexOf("cc",9)); //从索引处开始向前查找 返回该字符串 第一次出现的位置 没有返回 -1

    }
    //compareToIgnoreCase 方法比较
    public static void main5(String[] args) {
        String s1 = new String("abc");
        String s2 = new String("Abcd");
        String s3 = new String("abcd");
        String s4 = new String("ab");

        //compareToIgnoreCase 和 compareTo 方式相同 计算字符串长度  但是忽略大小写
        System.out.println(s1.compareToIgnoreCase(s2)); // -1
        System.out.println(s1.compareToIgnoreCase(s3)); // -1
        System.out.println(s1.compareToIgnoreCase(s4)); // 1
    }

    //compareTo 方法比较
    public static void main4(String[] args) {
        String s1 = new String("hello");
        String s2 = new String("hello");
        String s3 = new String("hell");
        String s4 = new String("hel");

        //compareTo 计算字符串长度
        System.out.println(s1.compareTo(s2)); // 0
        System.out.println(s1.compareTo(s3)); // 1
        System.out.println(s1.compareTo(s4)); // 2

    }

    public static void main3(String[] args) {
        String s1 = new String("hello");
        String s2 = new String("hello");
        String s3 = new String("Hello");

        System.out.println(s1.equals(s2)); //true
        System.out.println(s1.equals(s3)); //false
    }

    public static void main2(String[] args) {
        String student1 = new String("zzl"); //从字符串常量内存池 zzl 里重新实例化了一个新对象，地址也是新地址
        String student2 = new String("zzl");

        System.out.println(student1 == student2); // false
        System.out.println(student1.equals(student2)); // true
    }

    public static void main1(String[] args) {
        String student1 = "zzl"; //相当于是把 zzl 这个字符串放到了字符串常量内存池
        String student2 = "zzl"; //再次使用 zzl 时，直接从内存池里取

        System.out.println(student1 == student2); // true
        System.out.println(student1.equals(student2)); // true
    }
}